:root
{
    --button_count: 4;
    --height: 68px;
    --border_width: 8px;
    --button_width: 56px;
}

#page_footer_container
{
    pointer-events: none;
    position: fixed;

    top: 0;
    bottom: 0;
    left: 0;
    right: 0;

    height: 100%;
    width: 100%;

    z-index: var(--footer_z-index);
    filter: drop-shadow(0px 0px 10px rgba(0,0,0,2));
}

#page_footer
{
    position: absolute;
    width: 100%;
    height: calc(var(--height) + var(--border_width));
    bottom: 0;
}

#page_footer #page_footer_background
{
    position: absolute;
    width: 100%;
    top: 0;
    bottom: 0;
    background-color: var(--UI_secondary_colour);
    clip-path: polygon(
        0% 100%,
        0% calc(100% - calc(2 * var(--border_width))),
        calc(100% - 28px - var(--button_width) * var(--button_count)) calc(100% - calc(2 * var(--border_width))),
        calc(100% - 16px - var(--button_width) * var(--button_count)) 0%,
        100% 0%,
        100% 100%);
}

#page_footer #page_footer_foreground
{
    position: absolute;
    width: 100%;
    top: 0;
    bottom: 0;
    background-color: var(--UI_primary_colour);

    clip-path: polygon(0% 100%,
        0% calc(100% - var(--border_width)),
        calc(100% - 20px - var(--button_width) * var(--button_count)) calc(100% - var(--border_width)),
        calc(100% - 8px - var(--button_width) * var(--button_count)) var(--border_width),
        100% var(--border_width),
        100% 100%);
}

#page_footer #footer_link_button_list
{
    font-size: 0;
    position: absolute;
    right: 8px;
    bottom: 10px;

    padding: 0;
}

#page_footer #footer_link_button_list li
{
    position: relative;
    display: inline-block;

    pointer-events: all;
}

#page_footer .footer_link_button
{
    width: 48px;
    height: 48px;
    margin-left: 8px;

    filter: drop-shadow(0px 0px 10px rgba(0,0,0,2));

    background-color: var(--UI_secondary_colour);
    clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
}

#page_footer .footer_link_button:hover
{
    z-index: calc(var(--footer_z-index) + 2);

    background-color: black;
    clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
}

#page_footer .footer_link_button:hover:before
{
    z-index: calc(var(--footer_z-index) + 1);
    display: block;

    width: 100%;
    height: 100%;

    filter: blur(3px);
    background-image: radial-gradient(circle, var(--UI_hightlight_primary_colour) 55%, var(--UI_hightlight_secondary_colour) 60%);
    clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
    content: '';
}

#page_footer .footer_link_button .footer_button_visual
{
    pointer-events: none;
    position: absolute;

    width: 90%;
    height: 90%;

    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#page_footer .footer_link_button .footer_button_visual div
{
    pointer-events: none;
    position: absolute;

    width: 65%;
    height: 65%;

    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    background-position: center;
    background-size: cover;
}





.shadow
{
    filter: brightness(0%) blur(5px);
}







#link_banner
{
    pointer-events: none;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;

    height: 100%;
    width: 100%;

    z-index: calc(var(--footer_z-index) + 3);

    filter: drop-shadow(0px 0px 10px rgba(0,0,0,2));
}



#link_banner_background
{
    display: block;
    position: absolute;

    width: 238px;

    bottom: 0;
    right: 0;

    border-bottom: 78px solid var(--UI_secondary_colour);
    border-left: 20px solid transparent;
}

#link_banner_background_decor
{
    display: block;
    position: absolute;

    bottom: 8px;

    height: 8px;
    width: 100%;

    background-color: var(--UI_secondary_colour);
}

.link_banner_foreground
{
    display: block;
    position: absolute;

    width: 230px;

    bottom: -0px;
    right: 0;

    border-bottom: 68px solid var(--UI_primary_colour);
    border-left: 19px solid transparent;

    filter: drop-shadow(0px 0px 10px rgba(0,0,0,2));
}

#link_banner_decor
{
    display: block;
    position: absolute;

    bottom: 0;

    height: 8px;
    width: 100%;

    background-color: var(--UI_primary_colour);
}



#github_icon, #linkedin_icon, #youtube_icon, #email_icon
{
    display: block;
    position: absolute;
    pointer-events: all;

    width: 48px;
    height: 48px;

    bottom: 10px;
    right: 8px;

    filter: drop-shadow(0px 0px 10px rgba(0,0,0,2));

    background-color: var(--UI_secondary_colour);
    clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
}


#github_icon a, #linkedin_icon a, #youtube_icon a, #email_icon a
{
    position: absolute;

    width: 90%;
    height: 90%;

    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#github_icon a div, #linkedin_icon a div, #youtube_icon a div, #email_icon a div
{
    position: absolute;

    width: 65%;
    height: 65%;

    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    background-position: center;
    background-size: cover;
}


#github_icon:hover, #linkedin_icon:hover, #youtube_icon:hover, #email_icon:hover
{
    z-index: calc(var(--footer_z-index) + 2);

    background-color: black;
    clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
}

#github_icon:hover:before, #linkedin_icon:hover:before, #youtube_icon:hover:before, #email_icon:hover:before
{
    z-index: calc(var(--footer_z-index) + 1);
    display: block;

    width: 100%;
    height: 100%;

    filter: blur(3px);
    background-image: radial-gradient(circle, var(--UI_hightlight_primary_colour) 55%, var(--UI_hightlight_secondary_colour) 60%);
    clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
    content: '';
}

#github_icon { right: 176px; }
#linkedin_icon { right: 120px; }
#youtube_icon { right: 64px; }
#email_icon { right: 8px; }